/*
 * @(#)Map.java	1.0	2010/06/25
 *
 * Copyright 2010 guyven and David Croft. All rights reserved.
 */
package com.iawg.attrition.game.map;

/**
 * The Map class is the main class that holds all of the features that an RTS map
 * will contain. The map contains a board that holds what the user thinks of as the
 * actually map. This class really only contains the board and some descriptors.
 * 
 * @author guyven
 * @author William David Croft Jr.
 * @version 1.0 2010/06/25
 * @see Board
 */
public class Map {
	/** The value is used to hold the map's game board. */
	private Board board;
	/** The value is used to hold the number of suggested maximum players that this map is designed to hold. */
	private int maximumNumberOfPlayers;
	/** The value is used to hold the name of the map. */
	private String mapName;
	/** The value is used to hold a brief description of the map that can be displayed to the user when
	 * selecting a map.
	 */
	private String mapDescription;
	/** The value is used to hold the name of the map's designer */
	private String mapAuthor;

	/**
	 * @return the map's tile array.
	 */
	public Board getBoard() {
		return board;
	}

	/**
	 * @return the maximum number of players that the map can hold.
	 */
	public int getMaximumNumberOfPlayers() {
		return maximumNumberOfPlayers;
	}

	/**
	 * @return the name of the map.
	 */
	public String getMapName() {
		return mapName;
	}

	/**
	 * @return the map description.
	 */
	public String getMapDescription() {
		return mapDescription;
	}

	/**
	 * @return the map creator.
	 */
	public String getMapAuthor() {
		return mapAuthor;
	}

	/**
	 * @param tileArray the map's tile array.
	 */
	public void setBoard(Board board) {
		this.board = board;
	}

	/**
	 * @param maximumNumberOfPlayers the maximum number of players.
	 */
	public void setMaximumNumberOfPlayers(int maximumNumberOfPlayers) {
		this.maximumNumberOfPlayers = maximumNumberOfPlayers;
	}

	/**
	 * @param mapName the name of the map.
	 */
	public void setMapName(String mapName) {
		this.mapName = mapName;
	}

	/**
	 * @param mapDescription the map description.
	 */
	public void setMapDescription(String mapDescription) {
		this.mapDescription = mapDescription;
	}

	/**
	 * @param mapAuthor the map creator.
	 */
	public void setMapAuthor(String mapAuthor) {
		this.mapAuthor = mapAuthor;
	}
}